home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
tex
/
meta27
/
mfpandor.lzh
/
pnssi10.mf
< prev
next >
Wrap
Text File
|
1990-11-16
|
12KB
|
200 lines
%*****************************************************************************
% Copyright (c) 1989 by N. N. Billawala
%*****************************************************************************
% pnssi10.mf Pandora Sans Serif Oblique 10 point
font_identifier:="PNSSI";
mode_setup; % general setup
input pandor % general definitions used in pandora
designsize:= 10pt#; % intended "ideal" size for parameters
width#:= 10pt#; % width of an em
maxheight#:= 7.75pt#; % max height for delimiters,e.g., [,{,(
ascender#:= 7.5pt#; % height of ascenders, e.g., on l,h,k
cap#:= 7pt#; % height of uppercase, e.g., B,H,L
xheight#:= 5pt#; % xheight of lowercase, e.g., x,n,o
descender#:= 2pt#; % depth of descenders, e.g., on j,p,q
maxdepth#:= 2.25pt#; % max depth for delimiters,e.g., [,{,(
math_axis#:= .5[maxheight#,-maxdepth#]; % vertical alignment for math
accent_height#:=.3(ascender#-xheight#); % places bottom of accents
accent_depth#:=min(.5xheight#,.7(ascender#-xheight#)); % character ref box depth
define_whole_vertical_pixels(width,maxheight,ascender,cap,xheight,descender,
maxdepth,math_axis,accent_depth);
fixed_pitch_characters(false)(0); % true/false, # of characters per inch
oblique:=10; % slant of character reference points
bowlstem.uc#:=1.05 *fixed_pt; % uppercase (uc) bowl width
bowlstem.lc#:=1 *fixed_pt; % lowercase (lc) bowl width
stem.uc#:=1 *fixed_pt; % uppercase stem width
stem.lc#:=.95 *fixed_pt; % lowercase stem width
thin_stem.uc#:=.75 *fixed_pt; % width of thin uppercase stems
thin_stem.lc#:=.7 *fixed_pt; % width of thin lowercase stems
define_pixels
(bowlstem.uc,bowlstem.lc,stem.uc,stem.lc,thin_stem.uc,thin_stem.lc);
boldness:=1;
makeknown(fitbasis.lc#)(.19*width#);
makeknown(fitbasis.uc#)(.27*width#);
apex.uc:=inlimit(.5stem.uc)(0,stem.uc); % apex flatness in uppercase
apex.lc:=inlimit(.5stem.lc)(0,stem.lc); % apex flatness in lowercase
ov_t.uc:=.02cap; % top curve overshoot for uppercase
ov_t.lc:=.02xheight; % top curve overshoot for lowercase
ov_b.uc:=.02cap; % bottom curve overshoot for uppercase
ov_b.lc:=.02xheight; % bottom curve overshoot for lowercase
ov_apex.uc:=.02cap; % apex overshoot for uppercase
ov_apex.lc:=.02xheight; % apex overshoot for lowercase
apex_angle:=oblique; % for changing the angle at apex
if xheight<25:lowres_fix(ov_t.lc,ov_b.lc,ov_apex.lc); fi
if cap<70:lowres_fix(ov_t.uc,ov_b.uc,ov_apex.uc); fi
% for SERIFS and ARMS
serif_thickness:=inlimit(eps)(eps,.5xheight); % base thickness of h-serifs
terminal_thickness:=serif_thickness; % base thickness of terminal serifs
tip_thickness:= serif_thickness; % base thickness of arms
bulb_thickness:= .2pt; % (base) thickness of bulbs
x_bracket_h:=inlimit(.2xheight)(serif_thickness,.5xheight); % lc bracket join
cap_bracket_h:=inlimit(.2cap)(serif_thickness,.5cap); % uc bracket join
bool(ctrls):=false; % for explicit placement of control pts
onbase:=inlimit(0)(0,1); % places control pt along base of serif
onstem:=inlimit(0)(0,1); % places control pt along stem of serif
midbracket_pull:= inlimit(.4)(0,1); % pulls brackets in on arms and serifs
entasis:= inlimit(.1)(0,1); % amount of arc in horizontal serif base
terminal_entasis:= inlimit(.1)(0,1); % amount of arc in terminal serif base
arm_angle:= inlimit(10)(0,60); % global angle off of 90 degrees
asc_terminal_angle:= inlimit(0)(0,60); % at ascender height: from 0 deg...h,k,l
x_terminal_angle:= inlimit(0)(0,60); % at x-height: from 0 deg...m,n,r
base_terminal_angle:=inlimit(0)(0,60); % at base line: from 0 deg...u
diag_terminal_angle:=inlimit(0)(0,60); % on diagonals: from 0 deg...k,v,w,y
hs:=.6pt; % global horizontal serif length
ts:=.6pt; % global terminal serif length
as:=.6pt; % global arm length
cs:=.65pt; % global curvedarm length
serif_constant_amt:=0pt; % adds same length amount to all serifs
bool(bulbs):=false; % arms become bulbs if true
bool(bulb_taper):=true; % changes bulbs to tapering shape
taper_angle:=if bulb_taper:10 else:0 fi;% if bulb_taper, adjusts angle at end
bulb_taper_amt:=1; % taper length as a % of limb thickness
c_and_s.lc:=.75stem.lc; % c,s bulb length if bulb_taper=true
c_and_s.uc:=.85stem.uc; % C,G,S bulb length if bulb_taper=true
terminal_softness:=.2stem.lc; % softness in heel of the terminal serif
arm_softness:=.2thin_stem.lc; % softness in the heel of the arm
% ARCHES
arch_thickness.uc:=.6stem.uc; % uppercase arch thickness
arch_thickness.lc:=.6stem.lc; % lowercase arch thickness
arch_tip.uc:=.8stem.uc; % thinnest part of the uc arch
arch_tip.lc:=.8stem.lc; % thinnest part of the lc arch
arch_reference:=inlimit(.7)(.4,.95); % puts ref pts between tip/stem
arch_inner_amt:=inlimit(.8)(.4,.95); % puts arch pts between tip/ref pts
r_arch:=l_arch:=inlimit(.6)(0,1); % y-value of max outer stress on r_arch
bool(ensure_min_archthickness):=true; % guarantees minimum thickness
% BOWLS
major_curve.uc:=thin_stem.uc; % uppercase major bowl curve thickness
major_curve.lc:=arch_thickness.lc; % lowercase major bowl curve thickness
minor_curve.uc:=.9thin_stem.uc; % uppercase minor bowl curve thickness
minor_curve.lc:=.9arch_thickness.lc; % lowercase minor bowl curve thickness
major_bowl_tip.lc:=arch_tip.lc; % lowercase major bowl tip thickness
minor_bowl_tip.lc:=.8minor_curve.lc; % lowercase minor bowl tip thickness
major_bowl_reference:=inlimit(.6)(.4,.95); % puts ref pts between tip/bowlstem
minor_bowl_reference:=inlimit(.5)(.4,.95); % puts ref pts between tip/bowlstem
major_bowl_inner_amt:=inlimit(.7)(.4,.95); % puts arch pts between tip/ref pts
minor_bowl_inner_amt:=inlimit(.7)(.4,.95); % puts arch pts between tip/ref pts
define_minimums( % these values keep a one pixel minimum
bowlstem.lc,stem.lc,thin_stem.lc,apex.lc,arch_thickness.lc,arch_tip.lc,
bowlstem.uc,stem.uc,thin_stem.uc,apex.uc,arch_thickness.uc,arch_tip.uc,
major_curve.lc,minor_curve.lc,major_bowl_tip.lc,minor_bowl_tip.lc,
major_curve.uc,minor_curve.uc);
% ARCHES and BOWLS and CIRCULAR SHAPES
v_stress:=.52; % places point of vert stress on bowl
h_stress:=.51; % places horzstress on circular shapes
ductal:=inlimit(.25)(0,1); % for more ductal strokes: value of 1
minor_ductal.lc:=.1*(xheight-minor_curve.lc-major_curve.lc); % minor curve join
circ1:=inlimit(1)(.75,1.5); % tension of outer curve shapes
circ2:=inlimit(1)(.75,1.5); % tension of inner curve shapes
circ3:=inlimit(circ1-.07)(.75,1.5); % tension of outer circular_shapes
% JUNCTURES and NOTCHES
bool(softjuncture):=false; % are junctures soft? in junct macro
juncture_opening:=inlimit(.05stem.lc)(0,stem.lc);% indent into stem at juncture
stemcut_angle:=-2; % cut into stem at angle off of 90
archcut_angle:=0; % cuts into regular arch path
notch_length.uc:=.05stem.uc; % length of corrective notching (uc)
notch_length.lc:=.05stem.lc; % length of corrective notching (lc)
notch_width:=1; % wid